package com.ysstech.activiti.service;

import java.util.List;
import java.util.Map;

import com.ysstech.activiti.model.CommentEntity;

/**
 * 任务Service，用于管理，查询任务，例如：签收，办理，指派等
 */
public interface ActivitiTaskService {

    /**
     * 查询需要我审批的流程
     *
     * @param userId
     * @return
     * @throws Exception
     */
    public Map<String, Object> querApprovalFlow(String userId) throws Exception;

    /**
     * 审核流程
     *
     * @param userId  审核人
     * @param outcome 流程变量的名称（通过还是驳回）
     * @param taskId  任务ID
     * @param message 批注信息
     * @return
     * @throws Exception
     */
    public void approvalFlow(String userId, String outcome, String taskId, String message) throws Exception;

    /**
     * 使用任务ID，获取当前任务节点中对应的Form key中的连接的值
     *
     * @param taskId
     * @return
     * @throws Exception
     */
    public String queryTaskFormKeyByTaskId(String taskId) throws Exception;

    /**
     * 通过taskId查询objId
     *
     * @param taskId
     * @return
     */
    public Map<String, Object> queryObjId(String taskId) throws Exception;


    /**
     * 通过taskId，查询历史批注信息
     *
     * @param taskId
     * @return
     */
    public List<CommentEntity> queryCommentByTaskId(String taskId);

}
